package cn.wolfcode.luowowo.website.controller;

import cn.wolfcode.luowowo.article.domain.Destination;
import cn.wolfcode.luowowo.article.domain.Question;
import cn.wolfcode.luowowo.article.domain.Travel;
import cn.wolfcode.luowowo.article.service.*;
import cn.wolfcode.luowowo.member.server.IUserInfoService;
import cn.wolfcode.luowowo.search.service.*;
import cn.wolfcode.luowowo.search.template.DestinationTemplate;
import cn.wolfcode.luowowo.search.template.QuestionTemplate;
import cn.wolfcode.luowowo.search.template.TravelTemplate;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class DataController {
    @Reference
    private IUserInfoService userInfoService;
    @Reference
    private IUserInfoSearchService userInfoTemplateSearchService;
    @Reference
    private IStrategyDetailService strategyDetailService;
    @Reference
    private IDestinationService destinationService;
    @Reference
    private IStrategyTagService strategyTagService;
    @Reference
    private IStrategySearchService strategySearchService;
    @Reference
    private ITravelTemplateSearchService travelTemplateSearchService;
    @Reference
    private ITravelService travelService;
    @Reference
    private IDestinationTemplateSearchService destinationTemplateSearchService;

    @Reference
    private IQuestionService questionService;
    @Reference
    private IQuestionSearchService questionSearchService;
    @ResponseBody
    @RequestMapping("/questioninit")
    public String questioninit(){
        List<Question> questions = questionService.selectAll();
        for (Question question : questions) {
            QuestionTemplate questionTemplate = new QuestionTemplate();
            questionTemplate.setId(question.getId());
            questionTemplate.setCreateTime(question.getCreateTime());
            questionTemplate.setDestId(question.getDest().getId());
            questionTemplate.setDestName(question.getDest().getName());
            questionTemplate.setTitle(question.getTitle());
            questionTemplate.setViewnum(question.getViewnum());
            questionTemplate.setAuthorId(question.getAuthor().getId());
            questionTemplate.setAuthorName(question.getAuthor().getNickname());
            questionTemplate.setReplynum(question.getReplynum());
            questionTemplate.setThumbsupnum(question.getThumbsupnum());
            questionTemplate.setTag(question.getTag());
            if(question.getOneAnswer()!=null){
                questionTemplate.setCoverUrl(question.getOneAnswer().getCoverUrl());
                questionTemplate.setSummary(question.getOneAnswer().getSummary());
            }
            questionSearchService.saveOrUpdate(questionTemplate);
        }
        return "ok";
    }

    @RequestMapping("/dataInit")
    @ResponseBody
    public String dataInit(){
        System.out.println();
      /*  //用户初始化--------------------------
        List<UserInfo> us = userInfoService.list();
        for (UserInfo u : us) {
            UserInfoTemplate tt = new UserInfoTemplate();
            tt.setId(u.getId());
            tt.setDestName(u.getCity());
            tt.setFansnum(11);
            tt.setHeadUrl(u.getHeadImgUrl());
            tt.setInfo(u.getInfo());
            tt.setLevel(u.getLevel());
            tt.setNickname(u.getNickname());
            tt.setReplynum(10);
            tt.setTravelnum(2);
            userInfoTemplateSearchService.saveOrUpdate(tt);
        }

        //end--------------------------

        List<StrategyDetail> all = strategyDetailService.list();
        for (StrategyDetail detail : all) {
            StrategyTemplate t = new StrategyTemplate();

            t.setId(detail.getId());
            t.setTitle(detail.getTitle());
            t.setSubTitle(detail.getSubTitle());
            t.setDestId(detail.getDest().getId());
            t.setDestName(detail.getDest().getName());
            t.setThemeId(detail.getTheme().getId());
            t.setThemeName(detail.getTheme().getName());
            t.setSummary(detail.getSummary());
            t.setCreateTime(detail.getCreateTime());
            t.setViewnum(detail.getViewnum());
            t.setFavornum(detail.getFavornum());
            t.setReplynum(detail.getReplynum());
            t.setThumbsupnum(detail.getThumbsupnum());

            t.setCoverUrl(detail.getCoverUrl());

            *//*List<String> list = strategyTagService.getTagsBySDetailId(detail.getId());
            t.setTags(list);*//*

            Destination dest = destinationService.getCountry(detail.getDest().getId());

            t.setCountryId(dest.getId());
            t.setCountryName(dest.getName());
            dest = destinationService.getProvince(detail.getDest().getId());
            if(dest != null){
                t.setProvinceId(dest.getId());
                t.setProvinceName(dest.getName());
            }

            strategySearchService.saveOrUpdate(t);
        }*/
        //游记初始化--------------------------
        List<Travel> ts = travelService.list();

        for (Travel travel : ts) {
            TravelTemplate tt = new TravelTemplate();
            tt.setId(travel.getId());
            tt.setAuthorId(travel.getAuthor().getId());
            tt.setAuthorName(travel.getAuthor().getNickname());
            tt.setCoverUrl(travel.getCoverUrl());
            tt.setCreateTime(travel.getCreateTime());
            tt.setDestId(travel.getDest().getId());
            tt.setDestName(travel.getDest().getName());
            tt.setReplynum(travel.getReplynum());
            tt.setSummary(travel.getSummary());
            tt.setTitle(travel.getTitle());
            tt.setViewnum(travel.getViewnum());
            travelTemplateSearchService.saveOrUpdate(tt);
        }


        //end--------------------------
        //目的地初始化--------------------------
        List<Destination> ds = destinationService.list();

        for (Destination d : ds) {

            DestinationTemplate tt = new DestinationTemplate();

            tt.setId(d.getId());
            tt.setCoverUrl(d.getCoverUrl());
            tt.setName(d.getName());
            tt.setInfo(d.getInfo());
            destinationTemplateSearchService.saveOrUpdate(tt);
        }
        //end--------------------------
        return "ok";
    }

}
